import re


# 贪婪模式  从开头匹配到结尾  默认就是贪婪模式
one = 'Mddssfdszvcnd12312vn'
pattern_1 = re.compile('M(.*)n')  # 贪婪模式
pattern_2 = re.compile('M(.*?)n') # 非贪婪模式

result_1 = pattern_1.findall(one)
print(result_1)


two = "a\d"
pattern_3 = re.compile(r'a\b')
result_2 = pattern_3.findall(two)
print(result_2)


# 除了换行符号  \n  之外的匹配

str_1 = """
    wduweoad
    1213dsaDijf
"""
pattern_4 = re.compile('w(.*)d')   # 不会匹配到换行符
pattern_5 = re.compile('w(.*)d', re.S)  # 会匹配到换行符

# 正则里面严格区分大小写
pattern_6 = re.compile('w(.*)d', re.S | re.I)   # 忽略大小写

result_3 = pattern_4.findall(str_1)
result_4 = pattern_5.findall(str_1)
result_5 = pattern_6.findall(str_1)
print(result_5)



# 纯数字的正则  \d 0-9 之间的一个数字
pattern_7 = re.compile('\d')   # 找数字
num_1 = '111'
num_2 = 'a1234'
num_3 = '12345a'
result_6 = pattern_7.findall(num_1)

# 匹配  判断的方法
# match 方法  是否匹配成功  从头开始  匹配一次就停止了
result_7 = pattern_7.match(num_1)
# result_8 = pattern_7.match(num_2)
# result_9 = pattern_7.match(num_3)

# 从开头到结尾必须都是数字,并且是多个
pattern_8 = re.compile('^\d*$')  # 至少有一个数字
result_10 = pattern_8.match(num_1)






print(result_7.group())
# print(result_8.group())
# print(result_9.group())
print(result_10.group())






